x86-64/MMCFG: correct base address computation for regions not starting at bus 0
authorJan Beulich <jbeulich@novell.com>
Mon, 25 Jul 2011 15:42:19 +0000 (16:42 +0100)
committerJan Beulich <jbeulich@novell.com>
Mon, 25 Jul 2011 15:42:19 +0000 (16:42 +0100)
commit278acdb073c35391c5dea22e1bd8179a3cef58bc
tree66862555d5e439943ccd054235606cfd2157097c
parent6bc4b6c3362af80ce7b9892c6f7cb99599e07909
x86-64/MMCFG: correct base address computation for regions not starting at bus 0

As per the specification, the base address reported by ACPI is the one
that would be used if the region started at bus 0. Hence the
start_bus_number offset needs to be added not only to the virtual
address, but also the physical one when establishing the mapping, and
it then needs to be subtracted when obtaining the virtual address for
doing accesses.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
xen/arch/x86/x86_64/mmconfig_64.c